﻿$(function () {
    // 获取本地化资源
    var l = abp.localization.getResource('BookStore');

    // 初始化DataTable，用于显示书籍列表
    var dataTable = $('#BooksTable').DataTable(
        abp.libs.datatables.normalizeConfiguration({
            serverSide: true, // 启用服务器端处理
            paging: true, // 启用分页
            order: [[1, "asc"]], // 默认按第二列升序排序
            searching: false, // 禁用搜索框
            scrollX: true, // 启用水平滚动
            ajax: abp.libs.datatables.createAjax(testApp.bookStore.books.book.getList), // 配置Ajax请求获取数据
            columnDefs: [
                {
                    title: l('Actions'), // 操作列标题
                    rowAction: {
                        items:
                            [
                                {
                                    text: l('Edit'), // 编辑按钮文本
                                    visible: abp.auth.isGranted('BookStore.Books.Edit'), // 检查用户是否有编辑权限
                                    action: function (data) {
                                        editModal.open({ id: data.record.id }); // 打开编辑模态框
                                    }
                                },
                                {
                                    text: l('Delete'), // 删除按钮文本
                                    visible: abp.auth.isGranted('BookStore.Books.Delete'), // 检查用户是否有删除权限
                                    confirmMessage: function (data) {
                                        return l(
                                            'BookDeletionConfirmationMessage',
                                            data.record.name
                                        ); // 获取删除确认消息
                                    },
                                    action: function (data) {
                                        testApp.bookStore.books.book
                                            .delete(data.record.id) // 发送删除请求
                                            .then(function () {
                                                abp.notify.info(
                                                    l('SuccessfullyDeleted')
                                                ); // 显示删除成功通知
                                                dataTable.ajax.reload(); // 刷新表格
                                            });
                                    }
                                }
                            ]
                    }
                },
                {
                    title: l('Name'), // 名称列标题
                    data: "name" // 数据字段
                },
                {
                    title: l('Type'), // 类型列标题
                    data: "type", // 数据字段
                    render: function (data) {
                        return l('Enum:BookType:' + data); // 本地化类型显示
                    }
                },
                {
                    title: l('PublishDate'), // 发布日期列标题
                    data: "publishDate", // 数据字段
                    render: function (data) {
                        return luxon
                            .DateTime
                            .fromISO(data, {
                                locale: abp.localization.currentCulture.name
                            }).toLocaleString(); // 格式化日期显示
                    }
                },
                {
                    title: l('Price'), // 价格列标题
                    data: "price" // 数据字段
                },
                {
                    title: l('CreationTime'), // 创建时间列标题
                    data: "creationTime", // 数据字段
                    render: function (data) {
                        return luxon
                            .DateTime
                            .fromISO(data, {
                                locale: abp.localization.currentCulture.name
                            }).toLocaleString(luxon.DateTime.DATETIME_SHORT); // 格式化日期时间显示
                    }
                }
            ]
        })
    );

    // 初始化新增书籍模态框
    var createModal = new abp.ModalManager(abp.appPath + 'Books/CreateModal');

    // 模态框关闭后刷新表格
    createModal.onResult(function () {
        dataTable.ajax.reload();
    });

    // 绑定新增书籍按钮点击事件
    $('#NewBookButton').click(function (e) {
        e.preventDefault(); // 阻止默认行为
        createModal.open(); // 打开新增模态框
    });

    // 初始化编辑书籍模态框
    var editModal = new abp.ModalManager(abp.appPath + 'Books/EditModal');
    // 模态框关闭后刷新表格
    editModal.onResult(function () {
        dataTable.ajax.reload();
    });

})